﻿using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace MADSite
{
  public partial class BotChecker : System.Web.UI.Page
  {
    protected System.Web.UI.WebControls.TextBox CodeNumberTextBox;
    protected System.Web.UI.WebControls.Button SubmitButton;
    protected System.Web.UI.WebControls.Label MessageLabel;

    // For generating random numbers.
    private Random random = new Random();
    private int id = -1;
    TrainManagerClient trainManagerClient = new TrainManagerClient();

    private void Page_Load(object sender, System.EventArgs e)
    {
      if (!Request.Cookies.AllKeys.Contains("id"))
      {
        id = trainManagerClient.InitUser();
      }
      else
      {
        id = Int32.Parse(Request.Cookies["id"].Value);
      }
      HttpCookie cookie = new HttpCookie("id", id.ToString());
      Response.Cookies.Add(cookie);
      if (!this.IsPostBack)

        // Create a random code and store it in the Session object.
        this.Session["CaptchaImageText"] = GenerateRandomCode();

      else
      {
        // On a postback, check the user input.
        if (this.CodeNumberTextBox.Text == this.Session["CaptchaImageText"].ToString())
        {
          // Display an informational message.
          this.MessageLabel.CssClass = "info";
          Response.Cookies["tries"].Value = "0";
          Response.Redirect("Default.aspx");
        }
        else
        {
          // Display an error message.
          this.MessageLabel.CssClass = "error";
          this.MessageLabel.Text = "Ошибка: Вы неправильно ввели поле";

          // Clear the input and create a new random code.
          this.CodeNumberTextBox.Text = "";
          this.Session["CaptchaImageText"] = GenerateRandomCode();
        }
      }
    }

    //
    // Returns a string of six random digits.
    //
    private string GenerateRandomCode()
    {
      string s = "";
      for (int i = 0; i < 6; i++)
        s = String.Concat(s, this.random.Next(10).ToString());
      return s;
    }

    #region Web Form Designer generated code
    override protected void OnInit(EventArgs e)
    {
      //
      // CODEGEN: This call is required by the ASP.NET Web Form Designer.
      //
      InitializeComponent();
      base.OnInit(e);
    }

    /// <summary>
    /// Required method for Designer support - do not modify
    /// the contents of this method with the code editor.
    /// </summary>
    private void InitializeComponent()
    {
      this.Load += new System.EventHandler(this.Page_Load);

    }
    #endregion
  }
}